1. Field of Invention
The invention relates to non-volatile memory systems, more precisely, to a fast method of correcting corrupted data in non-volatile memory systems by using parity bits.
2. Description of Related Art
Memory systems are an integral part of most modern electronic equipment and devices. With the continued scaling down of the size of memory systems, data corruption remains a considerable design problem. In many architectures the detection and reconstruction of corrupted data is performed by error correction codes (ECCs). ECCs are remarkably efficient at reconstructing data. However, utilizing an ECC can be time consuming, as it often involves performing extensive computation. In cases of clustered errors, an ECC may be incapable of performing correction at all.
Therefore, in some multiple component memory systems a simpler and faster method of the reconstruction of corrupted data is practiced, which involves parity bits. This method is practiced, for example, in some disc drives, containing multiple discs. A variant of the method is referred to as Redundant Array Independent Discs, or RAID.
In RAID and related methods the data are organized into data groups. These data groups are then physically stored on different discs. Subsequently, parity bits are associated with the corresponding elements of the data groups on different discs. These parity bits can then be utilized for reconstructing the data, if the data got corrupted.
However, the aspect of the RAID design that the data are physically divided into data groups and then the data groups are stored separately may introduce too stringent design restrictions, possibly slowing down the memory system.
Non-volatile memory systems are being used in an ever-increasing number of applications and devices. These include flash memories, used, among others, in digital cameras and mobile communication equipment. In these non-volatile memories the reading of the data can be quite slow, limiting their applicability, usefulness, and competitiveness with other memory systems, such as RAMs and DRAMs. The data can be user data, such as a file representing a photo. Or the data can be firmware, that is, software used for the operation of the device. Firmware is typically read in when the device is switched on. Accelerating the reading of the firmware reduces the overall time of switching on the device, improving its usefulness and competitiveness.
Therefore, there is a need for fast methods for reconstructing corrupted data in non-volatile memory systems, where the method does not necessarily require the physical organization and separation of data groups.